System.String.Join 方法 (String, IEnumerable)

方法描述

串联集合的成员,其中在每个成员之间使用指定的分隔符。

语法定义(C# System.String.Join 方法 (String, IEnumerable) 的用法)

[ComVisibleAttribute(false)]
public static string Join(
	string separator,
	IEnumerable values
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
separator System-String 要用作分隔符的字符串。
values System-Collections-Generic-IEnumerable 一个包含要串联的对象的集合。
返回值 System.String 一个由 values 的成员组成的字符串,这些成员以 separator 字符串分隔。

提示和注释

如果 separator 为 null,则使用空字符串 (String.Empty)。 如果 values 中的任何成员为 null,则使用空字符串。

Join(String, IEnumerable) 是一个便利方法,通过它可以串联 IEnumerable 集合的每个成员,无需事先将它们转换为字符串。 IEnumerable 集合中每个对象的字符串表示形式通过调用对象的 ToString 方法派生。

此方法对于语言集成查询 (LINQ) 查询表达式特别有用。 例如以下代码定义了非常简单的 Animal 类,该类包含动物名称以及其所属的顺序。 然后,它定义一个 List 对象,该对象包含许多 Animal 对象。 调用 Enumerable.Where 扩展方法来提取其 Order 属性等于 "Rodent" 的 Animal 对象。 结果传递给 Join(String, IEnumerable) 方法。

C#

VB

复制

using System;

using System.Collections.Generic;

using System.Linq;

public class Animal

{

public string Kind;

public string Order;

public Animal(string kind, string order)

{

this.Kind = kind;

this.Order = order;

}

public override string ToString()

{

return this.Kind;

}

}

public class Example

{

public static void Main()

{

List animals = new List();

animals.Add(new Animal("Squirrel", "Rodent"));

animals.Add(new Animal("Gray Wolf", "Carnivora"));

animals.Add(new Animal("Capybara", "Rodent"));

string output = String.Join(" ", animals.Where( animal =>

(animal.Order == "Rodent")));

Console.WriteLine(output);

}

}

// The example displays the following output:

// Squirrel Capybara

System.String.Join 方法 (String, IEnumerable)例子

它将结果赋值给整数类型的 List 对象,然后将其传递到 Join(String, IEnumerable) 方法。

using System;
using System.Collections.Generic;

public class Example
{
   public static void Main()
   {
      int maxPrime = 100;
      List primes = GetPrimes(maxPrime);
      Console.WriteLine("Primes less than {0}:", maxPrime);
      Console.WriteLine("   {0}", String.Join(" ", primes));
   }

   private static List GetPrimes(int maxPrime)
   {
      Array values = Array.CreateInstance(typeof(int), 
                              new int[] { maxPrime - 1}, new int[] { 2 }); 
      // Use Sieve of Erathsthenes to determine prime numbers.
      for (int ctr = values.GetLowerBound(0); ctr <= (int) Math.Ceiling(Math.Sqrt(values.GetUpperBound(0))); ctr++)
      {

         if ((int) values.GetValue(ctr) == 1) continue;

         for (int multiplier = ctr; multiplier <=  maxPrime / 2; multiplier++)
            if (ctr * multiplier <= maxPrime)
               values.SetValue(1, ctr * multiplier);
      }      

      List primes = new List();
      for (int ctr = values.GetLowerBound(0); ctr <= values.GetUpperBound(0); ctr++)
         if ((int) values.GetValue(ctr) == 0) 
            primes.Add(ctr);
      return primes;
   }   
}
// The example displays the following output:
//    Primes less than 100:
//       2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

异常

异常 异常描述
ArgumentNullException values 为 null。

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4 .NET Framework Client Profile 受以下版本支持:4

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。